//
// Created by 吳廣帥 on 2023/8/2.
//1. 74HC595 2cs 4位数码管
// 2. 使用tim2定时器计数显示, 读取常驻内容, 需要将定时器中断中添加HC595_Display_Run()方法
#ifndef HC595_H
#define HC595_H
#include <stdint-gcc.h>
#include "gpio.h"
#include "stm32f1xx_hal_gpio.h"
#define HC595_DIO_GPIO_PORT GPIOB
#define HC595_RCLK_GPIO_PORT GPIOB
#define HC595_SCLK_GPIO_PORT GPIOB
#define HC595_DIO_GPIO GPIO_PIN_7
#define HC595_RCLK_GPIO GPIO_PIN_8
#define HC595_SCLK_GPIO GPIO_PIN_9
static uint8_t LED_NUM[10] = {
        0x03, // 0
        0x9f, // 1
        0x25, // 2
        0x0d, // 3
        0x99, // 4
        0x49, // 5
        0x41, // 6
        0x1f, // 7
        0x01, // 8
        0x09, // 9
};
static uint8_t LED_CHAR[15] = {
        0x11,// A
        0xc1,// b
        0x63,// c
        0x85,// d
        0x61,// E
        0x71,// F
        0x09,// g
        0x91,// H
        0x86,// J
        0xe3,// L
        0x31,// P
        0x19,// q
        0xf5,// r
        0x49,// s
        0x83,// U
};
// 关闭
static uint8_t LED_CLOSE = 0xff;
// 初始化引脚
void HC595_Init();
// 放入定时器的执行函数
void HC595_Display_Run();
// 数据显示
void HC595_Display_Show(char data1,char data2, char data3,char data4);
// 测试显示函数
void HC595_Display_Test();
// 错误显示
void HC595_Display_Error();
void HC595_Display_Hex(uint8_t data1, uint8_t data2, uint8_t data3, uint8_t data4);
#endif //HC595_H
